#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<mutex>
#include<thread>
#include<string>
#include<fstream>
#include<map>
#include <regex>//使用lamda表达式
using namespace std;

map<string, string>mp;	//map的构造部分

void test01() {//实现输入函数部分
	ifstream ifs("in.txt");
	string filename;
	string line;
	regex topbar("\[group[1-9]\]");
	if (ifs) {//有该文件
		while (getline(ifs, line))//内容对象是line
		{	//正则判断
			if (regex_match(line, topbar)) { continue; }
			//分出key和value
			int sz = 11;//11个byte
			int i = 0;
			while (i < sz && line[i] != '=')//找到'='位置
			{
				++i;
			}
			const int key_sz = i;
			string key = new char[key_sz];
			string value = new char[11 - key_sz - 1];
			memcpy(&key, &line, key_sz);
			memcpy(&value, &line, 11 - key_sz - 1);
			//存入map
			mp.insert(make_pair(key, value));
		}
	}
	else
	{
		cout << "can`t find such file!" << endl;
	}
}

void test02() {//输出操作线程函数
	ofstream ofs("out.txt");
	string filename;
	string line;
	
	if (ofs) // 有该文件  
	{	
		for (auto iter = mp.begin(); iter != mp.end(); iter++) {
			ofs << iter->first << "  " << iter->second << endl;
		}
	}
	else // 没有该文件  
	{
		cout << "no such file" << endl;
	}
}



int main() {
	thread t1(test01);
	thread t2(test02);
	t1.join();
	t2.join();
	return 0;
}